OpenAi提供的baselines囊括了許多強化學習算法,包括我們前面講解的Q-learning,這篇會簡單帶大家跑個範例程式碼,大家也可以調整參數玩玩看。另外會提到gym,有點生疏的同學可以回到Day4複習下~
gym提供了很多環境,內容可參考這邊:https://gym.openai.com/envs/#classic_control,要注意的是MuJoCo、Robotics要先去mujoco官網取得license,可參考這篇https://codertw.com/程式語言/508238/。穩定的話載mujoco150就好,但有些gym-環境似乎要mujoco200,不過這可以等到裝gym新的環境過程中跳出錯誤,再來載也沒問題。
openai的baseline提供的一套基線算法,讓大家可選選參數輕鬆實現,DDPG、DQN、A2C、PPO1、PPO2...但這邊我們這只會用到DQN,首先安裝baselines:
git clone https://github.com/openai/baselines.git
安裝tensorflow
# 有gpu輸入這個
# pip install tensorflow-gpu==1.13.1
# 沒gpu輸入這個
pip install tensorflow==1.13.1
cd baselines
pip install -e .
到這邊就安裝好了,接著就可以跑訓練:python -m baselines.run --alg=deepq --env=CartPole-v0 --save_path=./cartpole_model.pkl --num_timesteps=1e5
等訓練結束就可以用output的模型來玩哩:python -m baselines.run --alg=deepq --env=CartPole-v0 --load_path=./cartpole_model.pkl --num_timesteps=0 --play
alg:指定算法
env:指定環境
save_path:存放模型路徑
load_path:讀取模型路徑
num_timesteps:訓練次數
其他詳細參數用-h就可以看了,deepq還有附註其他環境的訓練參數,詳細可參考:https://github.com/openai/baselines/tree/master/baselines/deepq/experiments ,不過很奇怪的是有些算法下有experiments,有些則沒,沒的真挺可惜...額外的條參經驗看來還是得靠看paper學了XD
在安裝過程可能會因為電腦系統或套件耦合,產生意外的驚喜,不過基本上看log配google過關斬將應該沒有不行的。好了明天來介紹離線小恐龍Dino,準備親手打造環境跟算法囉!
gym遊戲玩家排行版:https://github.com/openai/gym/wiki/Leaderboard